// pages/goods_detail/index.js

import { request } from '../../request/index'
import regeneratorRuntime from '../../lib/runtime/runtime';

Page({

  /**
   * 页面的初始数据
   */
  data: {
    goodsObj: {},
    // 是否收藏商品
    isCollect: false
  },

  // urls: [],

  goodsInfo: {},

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    const goods_id = options.goods_id
    this.getGoodsObj(goods_id)
  },

  onShow () {


  },

  // 获取商品详情数据
  async getGoodsObj (goods_id) {
    const goodsObj = await request({ url: "/goods/detail", data: { goods_id } })

    this.goodsInfo = goodsObj

    // console.log(this.goodsInfo)

    // 获取收藏的商品数组
    let collect = wx.getStorageSync("collect") || [];
    let isCollect = collect.some(v => v.goods_id === this.goodsInfo.goods_id)

    const htmlStr = goodsObj.goods_introduce.replace(/\.webp/g, '.jpg')

    // 获取要预览的图片数组
    // this.urls = goodsObj.pics.map(v => v.pics_mid)

    this.setData({
      goodsObj: {
        goods_name: goodsObj.goods_name,
        goods_price: goodsObj.goods_price,
        // goods_introduce: goodsObj.goods_introduce.replace(/\.webp/g, '.jpg'),
        goods_introduce: htmlStr,
        pics: goodsObj.pics
      },
      isCollect
    })
  },

  // 点击图片预览
  handlePrevierImage (e) {
    // 1 先构造要预览的图片数组
    // const urls = this.urls
    const urls = this.data.goodsObj.pics.map(v => v.pics_mid)
    // console.log(urls);
    // 2 接收传递过来的图片url
    const current = e.currentTarget.dataset.url
    wx.previewImage({
      current,
      urls
    });
  },


  // 获取缓存中的购物车数据 数组格式 
  // 先判断 当前的商品是否已经存在于 购物车
  // 已经存在 修改商品数据  执行购物车数量++ 重新把购物车数组 填充回缓存中
  // 不存在于购物车的数组中 直接给购物车数组添加一个新元素 新元素 带上 购买数量属性 num  重新把购物车数组 填充回缓存中

  // 点击加入购物车
  handleAddCart () {
    const cart = wx.getStorageSync("cart") || []
    const index = cart.findIndex(v => v.goods_id === this.goodsInfo.goods_id)

    if (index === -1) {
      // 不存在
      // 商品数量加 1
      this.goodsInfo.num = 1
      // 默认选中该商品
      this.goodsInfo.checked = true

      cart.push(this.goodsInfo)
    } else {
      // 存在
      cart[index].num++
    }

    wx.setStorageSync("cart", cart)

    wx.showToast({
      title: '添加成功',
      icon: 'success',
      // true 防抖
      mask: true,
    });

  },

  // 收藏商品 
  handleCollect () {

    let isCollect = false
    // 获取收藏的商品数组
    let collect = wx.getStorageSync("collect") || [];
    // 判断商品是否被收藏
    const index = collect.findIndex(v => v.goods_id === this.goodsInfo.goods_id)

    if (index === -1) {
      // 没有被收藏  点击收藏
      collect.push(this.goodsInfo)
      isCollect = true
      wx.showToast({
        title: '收藏成功!',
        icon: 'success',
        mask: true
      });
    } else {
      // 被收藏了  取消收藏
      collect.splice(index, 1)
      isCollect = false
      wx.showToast({
        title: '取消收藏成功!',
        icon: 'success',
        mask: true
      });
    }
    this.setData({
      isCollect
    })
    // 把数组存到缓存中
    wx.setStorageSync("collect", collect);

  }

})